package top.buluoluo.userservice.service;

import jakarta.servlet.http.HttpServletRequest;
import top.buluoluo.commoncore.domain.response.Result;
import com.baomidou.mybatisplus.extension.service.IService;
import top.buluoluo.userservice.dto.request.RegisterRequest;
import top.buluoluo.userservice.dto.request.UserAddressPageRequst;
import top.buluoluo.userservice.dto.response.UserDTO;
import top.buluoluo.userservice.dto.result.PageResult;
import top.buluoluo.userservice.entity.User;
import top.buluoluo.userservice.entity.UserAddress;

import java.util.List;
import java.util.Map;

public interface UserService extends IService<User> {
//    用户登录方法
    Result<Map<String, Object>> login(String username, String password);
//    用户注册方法
    Result<UserDTO> register(RegisterRequest registerRequest);
//  用户退出登录方法
    Result<String> logout(String token);
//    管理员强制某用户所有设备下线
    Result<String> forceLogoutUser(Long userId);
//    根据id获取用户权限信息，在jwt过滤器中使用
    List<String> getUserRoles(Long userId);
//   分页获取用户的收货地址信息
    Result<PageResult<UserAddress>> getUserAddresses(UserAddressPageRequst request);
//    获取userId对应的默认收获地址
    Result<UserAddress> getDefaultUserAddress(Long userId);
}
